/**
 * jims
 */
package com.jims.master.modules.sync.dao;

import com.jims.master.common.persistence.CrudDao;
import com.jims.master.common.persistence.annotation.MyBatisDao;
import com.jims.master.common.web.impl.BaseDto;
import com.jims.master.modules.sync.entity.ClinicItemDict;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 诊疗项目DAO接口
 * @author 赵宁
 * @version 2017-02-23
 */
@MyBatisDao
public interface ClinicItemDictDao extends CrudDao<ClinicItemDict> {
     /**
      * @Title:
      * @Description: （分页总数）
       * @param null
      * @return
      * @author zhangyao
      * @date 2017/11/2 0002
      * @throws
     */
    public int  findListCount(ClinicItemDict clinicItemDict);

    /**
     * 查询机构下指定价表对应的诊疗项目
     * @param chargeId,orgId
     * @return
     * @author CTQ
     */
    public ClinicItemDict findByParams(@Param("chargeId") String chargeId, @Param("orgId") String orgId);
    /**
     * 根据诊疗项目查询所有对照
     * @param clinicId
     * @return
     * @author CTQ
     */
    public List<BaseDto> findVsChargeByClinicId(@Param("clinicId") String clinicId);

    /**
     * 诊疗项目自动补全
     * @param itemClassList
     * @param orgId
     * @param q
     * @param limit
     * @param extIds
     * @return
     */
    public List<ClinicItemDict> findListDict(@Param("itemClassList") String[] itemClassList, @Param("orgId") String orgId, @Param("q") String q, @Param("limit") String limit, @Param("extIds") String[] extIds, @Param("removeClasses") String[] removeClasses);

    /**
     * 根据诊疗项目Id 查找价格
     * @param id  诊疗项目id
     * @return
     * @Author 陈晓阳
     */
    public Double findPriceById(@Param("id") String id);

    /**
     * 根据途径字典ID查询所有对照项目
     * @param dictId
     * @param orgId
     * @param outpOrInp 门诊住院标志
     * @return
     * @author CTQ
     * @update by lijl 2018-01-26 增加门诊住院标识
     */
    public List<ClinicItemDict> findClinicItemByDictId(@Param("dictId") String dictId, @Param("orgId") String orgId, @Param("outpOrInp") String outpOrInp);

    /**
     * 查询最大itemCode
     * @param orgId
     * @param itemClass
     * @return
     */
    public int getMaxItemCode(@Param("orgId") String orgId, @Param("itemClass") String itemClass);

    public ClinicItemDict getName(@Param("id") String id);

    public ClinicItemDict findItemList(@Param("orgId") String orgId, @Param("clinicId") String clinicId);

    /**
     * 拼音码修改
     * @param clinicItemDict
     * @return
     */
    public int updateInputCode(ClinicItemDict clinicItemDict);

    /**
     * @Title: 根据编码和名称查询诊疗--导入价表诊疗对照用
     * @Description:
     * @Param:
     * @Return:
     * @Author: fengyg
     * @Date: 2017-12-19 下午 06:10
     * version: V1.0
     */
    public ClinicItemDict findByCodeName(ClinicItemDict clinicItemDict);

    public ClinicItemDict getById(ClinicItemDict clinicItemDict);
}